gchar *icon_name;
};
-struct _GtkStackPrivate {
+typedef struct {
GList *children;
GdkWindow* bin_window;
gint64 end_time;
GtkStackTransitionType active_transition_type;
-};
+} GtkStackPrivate;
static void gtk_stack_add (GtkContainer *widget,
GtkWidget *child);
static gint get_bin_window_y (GtkStack *stack,
GtkAllocation *allocation);
-G_DEFINE_TYPE(GtkStack, gtk_stack, GTK_TYPE_CONTAINER);
+G_DEFINE_TYPE_WITH_PRIVATE(GtkStack, gtk_stack, GTK_TYPE_CONTAINER);
static void
gtk_stack_init (GtkStack *stack)
{
- stack->priv = G_TYPE_INSTANCE_GET_PRIVATE (stack, GTK_TYPE_STACK, GtkStackPrivate);
-
gtk_widget_set_has_window ((GtkWidget*) stack, TRUE);
gtk_widget_set_redraw_on_allocate ((GtkWidget*) stack, TRUE);
}
gtk_stack_finalize (GObject *obj)
{
GtkStack *stack = GTK_STACK (obj);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
gtk_stack_unschedule_ticks (stack);
GParamSpec *pspec)
{
GtkStack *stack = GTK_STACK (object);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
switch (property_id)
{
gtk_stack_realize (GtkWidget *widget)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkAllocation allocation;
GdkWindowAttr attributes = { 0 };
GdkWindowAttributesType attributes_mask;
gtk_stack_unrealize (GtkWidget *widget)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
gtk_widget_unregister_window (widget, priv->bin_window);
gdk_window_destroy (priv->bin_window);
P_("The index of the child in the parent"),
-1, G_MAXINT, 0,
GTK_PARAM_READWRITE));
-
- g_type_class_add_private (klass, sizeof (GtkStackPrivate));
}
/**
find_child_info_for_widget (GtkStack *stack,
GtkWidget *child)
{
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *info;
GList *l;
GtkWidget *child,
gint position)
{
- GtkStackPrivate *priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GList *l;
GList *old_link = NULL;
GList *new_link = NULL;
GtkStackChildInfo *child_info = NULL;
gint num = 0;
- priv = stack->priv;
-
l = priv->children;
/* Loop to find the old position and link of child, new link of child and
GParamSpec *pspec)
{
GtkStack *stack = GTK_STACK (container);
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *info;
GList *list;
guint i;
case CHILD_PROP_POSITION:
i = 0;
- for (list = stack->priv->children; list != NULL; list = g_list_next (list))
+ for (list = priv->children; list != NULL; list = g_list_next (list))
{
if (info == list->data)
break;
GParamSpec *pspec)
{
GtkStack *stack = GTK_STACK (container);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *info;
GtkStackChildInfo *info2;
gchar *name;
get_bin_window_x (GtkStack *stack,
GtkAllocation *allocation)
{
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
int x = 0;
if (priv->transition_pos < 1.0)
get_bin_window_y (GtkStack *stack,
GtkAllocation *allocation)
{
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
int y = 0;
if (priv->transition_pos < 1.0)
gtk_stack_set_transition_position (GtkStack *stack,
gdouble pos)
{
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
gboolean done;
priv->transition_pos = pos;
GdkFrameClock *frame_clock,
gpointer user_data)
{
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
gint64 now;
gdouble t;
static void
gtk_stack_schedule_ticks (GtkStack *stack)
{
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
if (priv->tick_id == 0)
{
static void
gtk_stack_unschedule_ticks (GtkStack *stack)
{
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
if (priv->tick_id != 0)
{
GtkStackTransitionType transition_type,
guint transition_duration)
{
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkWidget *widget = GTK_WIDGET (stack);
gboolean animations_enabled;
GtkStackTransitionType transition_type,
guint transition_duration)
{
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *info;
GtkWidget *widget = GTK_WIDGET (stack);
GList *l;
gpointer user_data)
{
GtkStack *stack = GTK_STACK (user_data);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkWidget *child = GTK_WIDGET (obj);
GtkStackChildInfo *child_info;
GtkWidget *child)
{
GtkStack *stack = GTK_STACK (container);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *child_info;
g_return_if_fail (child != NULL);
GtkWidget *child)
{
GtkStack *stack = GTK_STACK (container);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *child_info;
gboolean was_visible;
gtk_stack_set_homogeneous (GtkStack *stack,
gboolean homogeneous)
{
- GtkStackPrivate *priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
g_return_if_fail (GTK_IS_STACK (stack));
- priv = stack->priv;
-
homogeneous = !!homogeneous;
if (priv->homogeneous == homogeneous)
gboolean
gtk_stack_get_homogeneous (GtkStack *stack)
{
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
g_return_val_if_fail (GTK_IS_STACK (stack), FALSE);
- return stack->priv->homogeneous;
+ return priv->homogeneous;
}
/**
guint
gtk_stack_get_transition_duration (GtkStack *stack)
{
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
g_return_val_if_fail (GTK_IS_STACK (stack), 0);
- return stack->priv->transition_duration;
+ return priv->transition_duration;
}
/**
gtk_stack_set_transition_duration (GtkStack *stack,
guint duration)
{
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
g_return_if_fail (GTK_IS_STACK (stack));
- stack->priv->transition_duration = duration;
+ priv->transition_duration = duration;
g_object_notify (G_OBJECT (stack), "transition-duration");
}
GtkStackTransitionType
gtk_stack_get_transition_type (GtkStack *stack)
{
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
g_return_val_if_fail (GTK_IS_STACK (stack), GTK_STACK_TRANSITION_TYPE_NONE);
- return stack->priv->transition_type;
+ return priv->transition_type;
}
/**
gtk_stack_set_transition_type (GtkStack *stack,
GtkStackTransitionType transition)
{
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
g_return_if_fail (GTK_IS_STACK (stack));
- stack->priv->transition_type = transition;
+ priv->transition_type = transition;
g_object_notify (G_OBJECT (stack), "transition-type");
}
GtkWidget *
gtk_stack_get_visible_child (GtkStack *stack)
{
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
g_return_val_if_fail (GTK_IS_STACK (stack), NULL);
- return stack->priv->visible_child ? stack->priv->visible_child->widget : NULL;
+ return priv->visible_child ? priv->visible_child->widget : NULL;
}
/**
const gchar *
gtk_stack_get_visible_child_name (GtkStack *stack)
{
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
g_return_val_if_fail (GTK_IS_STACK (stack), NULL);
- if (stack->priv->visible_child)
- return stack->priv->visible_child->name;
+ if (priv->visible_child)
+ return priv->visible_child->name;
return NULL;
}
gtk_stack_set_visible_child (GtkStack *stack,
GtkWidget *child)
{
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *child_info;
g_return_if_fail (GTK_IS_STACK (stack));
if (gtk_widget_get_visible (child_info->widget))
set_visible_child (stack, child_info,
- stack->priv->transition_type,
- stack->priv->transition_duration);
+ priv->transition_type,
+ priv->transition_duration);
}
/**
gtk_stack_set_visible_child_name (GtkStack *stack,
const gchar *name)
{
- gtk_stack_set_visible_child_full (stack, name, stack->priv->transition_type);
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+
+ gtk_stack_set_visible_child_full (stack, name, priv->transition_type);
}
/**
const gchar *name,
GtkStackTransitionType transition)
{
- GtkStackPrivate *priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *child_info, *info;
GList *l;
g_return_if_fail (GTK_IS_STACK (stack));
g_return_if_fail (name != NULL);
- priv = stack->priv;
-
child_info = NULL;
for (l = priv->children; l != NULL; l = l->next)
{
gpointer callback_data)
{
GtkStack *stack = GTK_STACK (container);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *child_info;
GList *l;
gboolean *vexpand_p)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
gboolean hexpand, vexpand;
GtkStackChildInfo *child_info;
GtkWidget *child;
cairo_t *cr)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
if (priv->last_visible_surface)
{
cairo_t *cr)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkAllocation allocation;
gint x = 0;
gint y = 0;
cairo_t *cr)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
cairo_t *pattern_cr;
if (priv->visible_child)
GtkAllocation *allocation)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkAllocation child_allocation;
g_return_if_fail (allocation != NULL);
gint *natural_height)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *child_info;
GtkWidget *child;
gint child_min, child_nat;
gint *natural_height)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *child_info;
GtkWidget *child;
gint child_min, child_nat;
gint *natural_width)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *child_info;
GtkWidget *child;
gint child_min, child_nat;
gint *natural_width)
{
GtkStack *stack = GTK_STACK (widget);
- GtkStackPrivate *priv = stack->priv;
+ GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
GtkStackChildInfo *child_info;
GtkWidget *child;
gint child_min, child_nat;